Einfach und übertragbar: Mit Java-Streams Daten lesen und schreiben

Alle Ein- und Ausgabeoperationen in Java basieren auf Streams. Wer sich erst einmal mit der Syntax eines Stream-Typs vertraut gemacht hat, kann auch andere Stream-Typen in Java verwenden. Dieser Artikel zeigt gängige Verfahren.

Die Input/Output-Optionen (I/O) von Java stellen eine einfache, standardisierte API zum Lesen und Schreiben zeichen- oder bytebasierter Daten aus unterschiedlichen Datenquellen bereit. Im Folgenden sollen die I/O-bezogenen Klassen, Schnittstellen und Operationen vorgestellt werden, die die Java-Plattform bereitstellt. Vorab ist aber ein Blick auf Java-Streams nötig.

I/O-Streams

Alle Ein- und Ausgabeoperationen in Java basieren auf Streams, also auf dynamischen Abfolgen von Zeichen oder Bytes. Javas I/O-Streams bieten ein standardisiertes Verfahren zum Lesen und Schreiben von Daten. Dabei stellt jedes Objekt, das eine veränderbare Datenquelle in Java repräsentiert, seine Methoden zum Lesen und Schreiben von Daten als Stream zur Verfügung.

Für die meisten streambasierten I/O-Klassen ist java.io das wichtigste Paket. Es hält zwei abstrakte Klassen bereit, InputStream und OutputStream. Alle anderen streambasierten I/O-Klassen erweitern diese Basisklassen.

Das Paket java.io beinhaltet eine Reihe von Klassen und Interfaces, die nützliche Abstraktionen der grundlegenden Schreib- und Leseoperationen für Zeichen und Bytes darstellen, wie sie die Klassen InputStream und OutputStream definieren. Beispielsweise liefert die ObjectInputStream-Klasse Methoden, mit denen man Daten aus einem Stream als Java-Objekt lesen kann. Die ObjectOutputStream-Klasse bietet hingegen Methoden, mit denen man Daten als Java-Objekt in einen Stream schreiben kann.

Optimierte Lese- und Schreibvorgänge

JDK 1.1 bringt eine Reihe von Reader- und Writer-Klassen mit, die nützlichere Abstraktionen und eine verbesserte I/O-Performance bieten als die vorhandenen Stream-Klassen. So gibt es zum Beispiel die Klassen BufferedReader und BufferedWriter zum Lesen und Schreiben von Text mit zeichenbasierten Input- und Output-Streams. Die BufferedReader-Klasse buffert Zeichen zum effizienteren Lesen von Zeichen, Arrays und Zeilen. Entsprechend buffert die BufferedWriter-Klasse Zeichen zum effizienteren Schreiben von Zeichen, Arrays und Strings. Die Größe des von den beiden Klassen verwendeten Puffers kann je nach Bedarf eingestellt werden.

Zu den vom Java-I/O-Framework bereitgestellten Reader- und Writer-Klassen gehören unter anderem auch die Klassen LineNumberReader, CharArrayReader, FileReader, FilterReader, PushbackReader, PipedReader und StringReader. Diese Klassen sind Wrapper für die Klassen InputStream und OutputStream. Daher stellen sie ähnliche Methoden wie diese beiden Klassen zur Verfügung. Allerdings bieten sie effizientere und nützlichere Abstraktionen zum Lesen und Schreiben von bestimmten Objekten, etwa Dateien, Zeichenarrays oder Strings.

Themenseiten: Anwendungsentwicklung, Software

Fanden Sie diesen Artikel nützlich?
Content Loading ...
Whitepaper

Artikel empfehlen:

Neueste Kommentare 

Noch keine Kommentare zu Einfach und übertragbar: Mit Java-Streams Daten lesen und schreiben

Kommentar hinzufügen

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *